1. Field of the Invention
The present invention relates to a distributed multimedia server device for delivering multimedia data to a plurality of terminals in response to a request from each terminal, and a distributed multimedia server data access method to be used in delivering multimedia data from a distributed multimedia server device to a plurality of terminals or storing multimedia data into a distributed multimedia server device from a multimedia data input device.
2. Description of the Background Art
Conventionally, a service for delivering multimedia data to each terminal has been realized by a single multimedia server device.
FIG. 1 shows a schematic configuration of a conventional single multimedia server device, in which a communication control unit 111 carries out communications with terminals and a central control unit 112 controls the multimedia server device as a whole, while a memory unit 113 temporarily stores multimedia data, etc. at a time of delivery to a terminal and a storage unit 115 stores multimedia data, where data transfers among the communication control unit 111, the central control unit 112, the memory unit 113 and the storage unit 115 are provided by a system bus 114.
In a case of a single multimedia server device as shown in FIG. 1, there is a limitation on a maximum number of simultaneously connectable terminals due to a transfer neck of the system bus 114 and an input/output rate neck of the storage unit 115. For this reason, there has been a proposition to increase the maximum number of simultaneously connectable terminals by using a distributed multimedia server device in which a plurality of server modules are connected through a network.
FIG. 2 shows a system configuration using a conventional distributed multimedia server device, in which each one of terminals 211 to 21L issues a multimedia data read request to a distributed multimedia server device 23 through a terminal side network 22 and playbacks received multimedia data. Here, the terminal side network 22 is a network connecting the terminals 211 to 21L with the distributed multimedia server device 23.
The distributed multimedia server device 23 comprises server modules 2311 to 231M for carrying out delivery of multimedia data with respect to terminals, and a control module 232 for receiving requests from terminals and issuing multimedia data delivery requests to the server modules.
One multimedia data is divided into fixed length multimedia blocks and distributedly stored in a plurality of server modules 2311 to 231M. Note that each one of the server modules 2311 to 231M has a configuration similar to that shown in FIG. 1 so that each server module can operate as a single multimedia server device. The delivery of multimedia data using this distributed multimedia server device is carried out as follows.
(1) A multimedia data read request containing an identifier of a program to be read is transmitted from a terminal 21i to the control module 232 via the terminal side network 22.
(2) A multimedia data delivery request is transmitted from the control module 232 to all the server modules 2311 to 231M via the terminal side network 22.
(3) Each of the server modules 2311 to 231M delivers multimedia block that is distributedly stored in each server modules to the terminal 21i via the terminal side network 22, while maintaining synchronization with respect to the other server modules so that the terminal does not receive multimedia data from a plurality of server modules simultaneously.
(4) The multimedia data delivery for a plurality of terminals is carried out simultaneously in a similar manner. In other words, there can be cases where a destination terminal of multimedia block deliver by one server module is different for successive multimedia blocks to be delivered.
However, the conventional distributed multimedia server device has been associated with the following problems.
(1) There is a need for each server module to maintain synchronization with respect to the other server modules so that the terminal does not receive multimedia data from a plurality of server modules simultaneously.
(2) The server module sequentially delivers multimedia data to different terminals, but when the terminal side network 22 is connection-less, there can be cases where multimedia data are not delivered to the terminal as intended because of collisions in the network so that the playback at the terminal can be interrupted. On the other hand, when the terminal side network 22 is connection oriented, there is a need for one server module to either maintain connections with all the terminals or repeat connection set up and release with respect to the terminals in short time intervals dictated by multimedia block delivery time.
In the former case it is necessary to maintain connections even while multimedia data delivery does not take place, whereas in the latter case a processing for connection set up and release causes overhead and an effective connection time during which multimedia data delivery can be carried out becomes relatively short, so that the utilization efficiency of the terminal side network 22 is low in either case.
(3) There is a need to provide the control module 232 for centralized control of the distributed multimedia server device 23 as a whole, besides the server modules 2311 to 231M for carrying out multimedia data delivery.
(4) When the terminal side network 22 or the communication protocol between the terminals 211 to 21L and the distributed multimedia server device 23 is changed, this change will affect all the server modules 2311 to 231M.
Now, according to the conventional distributed multimedia server data access method, multimedia data for one program is divided into fixed length segments and stored cyclically among the server modules 2311 to 231M. Then, a segment access at one server module is carried out in synchronization with segment accesses at the other server modules.
More specifically, the data read processing by the conventional distributed multimedia server data access method is carried out according to a sequence chart of FIG. 3 as follows.
(1) The control module 232 receives a read request for a certain program from the terminal 21i.
(2) The control module 232 issues a delivery request containing a synchronization information to the server module 2311 that stores a top segment of the requested program.
(3) The control module 232 then issues a delivery request containing a synchronization information to all the other server modules so that the other server modules sequentially carry out the data read processing in synchronization according to the synchronization information in such a manner that no interruption occurs in the playback at the terminal 21i.
(4) Each server module reads relevant segments according to the synchronization information notified from the control module 232, and transfers the read out segments to the terminal 21i.
Next, as a concrete example of the conventional distributed multimedia server data access method, the time-slot centralized management scheme in which each server module manages a plurality of time-slots will be described.
Here, for the sake of simplicity, it is assumed that the distributed multimedia server device has two server modules where a server module #1 has three storage devices 2151, 2152 and 2153 and a server module #2 has three storage devices 2251, 2252 and 2253.
FIG. 4 shows a timing chart for the time-slot processing used in the conventional multimedia server data access method for this exemplary case. In FIG. 4, six time-slot sequences each comprising twenty-four time-slots TS01, TS02, . . . , TS24 of the equal interval are periodically generated in six storage devices. Each one of cycle011, cycle012, . . . , cycle016 indicates a period for reading four time-slots constituting the time-slot sequence (a sub-cycle), and cycle01 indicates a period for reading twenty-four time-slots constituting the time-slot sequence (a cycle), where one cycle comprises six sub-cycles and the time-slot sequences have phases which are sequentially displaced by one sub-cycle.
In this case, segments are sequentially stored in the storage devices 2151, 2152 and 2153 of the server module #1 and then the storage devices 2251, 2252 and 2253 of the server module #2, in this order.
When there is a read request for a certain program from a terminal and the top segment of that program is stored in the storage device 2151 of the server module #1, the server module #1 searches for an idle time-slot which is currently not used by the other read processing or write processing, sequentially in an order of TS01, TS02, . . . , so as to find a time-slot to be used in reading segments of the requested program. Here, whether each time-slot is busy or idle is managed by an information called time-slot management information.
When TS01 is an idle time-slot, for example, the server module #1 notifies the fact that TS01 is an idle time-slot to the server module #2. When this notice is received, the server module #2 updates the time-slot management information to indicate that time-slot TS01 is now busy.
Then, at the server module #1, a segment stored in the storage device 2151 is read out at a timing of the time-slot TS01 in the sub-cycle cycle011, a segment stored in the storage device 2152 is read out at a timing of the same time-slot TS01 in the next sub-cycle cycle012, and a segment stored in the storage device 2153 is read out at a timing of the same time-slot TS01 in the next sub-cycle cycle013. Then, at the server module #2, a segment stored in the storage device 2251 is read out at a timing of the same time-slot TS01 in the next sub-cycle cycle014, a segment stored in the storage device 2252 is read out at a timing of the same time-slot TS01 in the next sub-cycle cycle015, and a segment stored in the storage device 2253 is read out at a timing of the same time-slot TS01 in the next sub-cycle cycle016. Thereafter, the operation returns to the first sub-cycle cycle011 and the similar read processing is repeated as indicated by a dashed line in FIG. 4.
On the other hand, according to the conventional distributed multimedia server data access method, the data write processing is carried out according to a sequence chart of FIG. 5 as follows.
(1) The control module 232 receives a write request for a certain program from an input device (not shown in FIG. 2) via the terminal side network 22.
(2) The control module 232 determines the server module 2311 for writing a top segment of the requested program, and issues a write request containing a synchronization information to this server module 2311.
(3) The control module 232 then issues a write request containing a synchronization information to all the other server modules so that the other server modules sequentially carry out the data write processing in synchronization according to the synchronization information.
(4) Each server module writes relevant segments according to the synchronization information notified from the control module 232.
For this write processing, a concrete example of the conventional distributed multimedia server data access method is also the time-slot centralized management scheme by which the processing for writing segments according to time-slots can be realized similarly as in the case of reading segments according to time-slots described above.
However, the conventional distributed multimedia server data access method has been associated with the following problems.
(1) There is a need to notify the synchronization information with respect to all the server modules.
Moreover, when the terminal issues a read request for another program or a visual search request such as that for jumping to another playback position within the same program, before the reading is completed up to the end of a certain program, there is a need to notify a new synchronization information along with a request for interrupting an access according to the previously notified synchronization information with respect to all the server modules, and this can be problematic when a visual search request is issued frequently or a number of server modules constituting the distributed multimedia server device is large.
In addition, each server module delivers segments of a new program only after the delivery of segments of the previous program to a terminal that was already requested by the control module, so that it appears to take a long response time for a visual search from a viewpoint of a terminal.
In the concrete case of the time-slot centralized management scheme, there is a need to notify a selected time-slot to all the server modules, and when there is a visual search request, there is a need to notify a time-slot release and a newly selected time-slot with respect to all the server modules.
(2) In a case of additionally providing a new server module or a new storage device in the server module, there is a need to change the synchronization information managed by all the server modules. The influence due to this is large when a number of server modules constituting the distributed multimedia server device is large.
In the concrete case of the time-slot centralized management scheme, there is a need to change the time-slot management information managed by all the server modules.
(3) When a communication error occurs for the synchronization information notice, the synchronization information managed by different server modules can be inconsistent so that there is a need to regularly carry out a consistency check for the synchronization information among the server modules. In particular, a possibility for a communication error to occur increases when a number of server modules constituting the distributed multimedia server device is large, so that an amount of consistency check for the synchronization information also increases in such a case.
In the concrete case of the time-slot centralized management scheme, the inconsistency in the time-slot management information managed by the server modules arises when a communication error occurs for a selected time-slot notice or time-slot release notice so that there is a need to regularly carry out the consistency check for the time-slot management information among the server modules.
(4) In order to accurately synchronize the processing according to the synchronization information at each server module over the entire server device, there is a need to establish a time synchronization among all the server modules, and an amount of time synchronization processing increases when a number of server modules constituting the distributed multimedia server device is large.
In the concrete case of the time-slot centralized management scheme, the time-slot phase difference between consecutively ordered storage devices on different server modules must be one sub-cycle, as in the storage device 2153 and the storage device 2251 of FIG. 4 for example, just like the consecutively ordered storage devices on the same server module such as the storage devices 2151 and 2152 of FIG. 4 for example, so that there is a need for the time synchronization among all the server modules.
(5) When a number of server modules increases in the time-slot centralized management scheme, a time-slot cycle becomes long and a response time with respect to a new read request becomes long. For example, in FIG. 4, when there is a new read request, one of twenty-four time-slots within six sub-cycles is to be selected so that the maximum response time is six sub-cycles, but when a number of server modules is doubled, one of forty-eight time-slots within twelve sub-cycles is going to be selected, so that the maximum response time becomes twelve sub-cycles.